home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / editors / vix.arc / VIX.DOC next >
Encoding:
Text File  |  1986-03-08  |  28.3 KB  |  610 lines

  1.                          VIX Reference Manual
  2.  
  3.  
  4.  
  5.      This is the Reference Manual for VIX, a full screen editor
  6. written in C by Dr. Bruce E. Wampler.  (Current address: Dr. Bruce E.
  7. Wampler, University of New Mexico, Department of Computer Science,
  8. Farris Engineering Center, Albuquerque, NM 87131; uucp: ...{ucbvax |
  9. gatech | ihnp4!lanl}!unmvax!wampler).  Any comments, bug reports, or
  10. suggestions should be sent to that address.  Full source code
  11. is also avaiable.
  12.  
  13.      VIX is NOT Vi, but a close emulation based on the editor called
  14. TVX. While the majority of the common commands are identical, there
  15. are some inherent differences in the way TVX and Vi treat text. 
  16. Whenever possible, VIX emulates Vi commands exactly.  When that wasn't
  17. possible, the emulation won't produce a surprise, or will be implemented
  18. as a completely different command name.  (Mostly as 'q' prefix commands.)
  19. None of the underlying ex commands are avaiable.
  20.  
  21.      This version of VIX Copyright (c) 1986 by Bruce E. Wampler.
  22. Permission is hereby granted for free, unrestricted nonprofit use of
  23. this software.  Please feel free to modify, distribute, and share this
  24. software as long as you aren't making any money from it.  If you want
  25. to use this code in a profit making environment, please contact the
  26. author for permission.   
  27.  
  28.  
  29.  
  30. ********* General Notes
  31.  
  32.     Most commands also take an optional numeric count.  The default
  33. count is always one.  Commands that allow a count value are preceded
  34. by the letter 'n' in the following descriptions.  Whenever a command
  35. produces output or an error message, it appears on the bottom line
  36. of the screen. 
  37.  
  38.      The BACKSPACE key (Control-H on some terminals) is used to edit
  39. input text.  When VIX is accepting commands, BACKSPACE will cause the
  40. character immediately before the cursor to be deleted. 
  41.  
  42.      Vi uses the ':' command to read and write the file (among other
  43. things).  Vix uses the ':' to set operating parameters such as
  44. autoindent, screen size, etc.  The 'ZZ' (or 'ZA' to abort without
  45. changes) command is used by vix to exit. 
  46.  
  47.      Vix does not have the underlying ex editor, so none of the escape
  48. to ex commands work.  Vix does have the TVX repeat loop, however, and
  49. this compensates to a great extent for the need for ex features.
  50. Please consult the TVX manual for examples of using the repeat loop.
  51. Note that when using the repeat loop with vix, the commands will be
  52. vix commands and not tvx commands. 
  53.  
  54.      VIX uses two techniques for protecting the original file from
  55. editing mistakes.  First, each time a file is edited, a new version is
  56. created, and the previous version retained in its original form as a
  57. backup.  This file will change the original file extension to '.BAK'.
  58.  
  59.  
  60.  
  61. *****  The Text Buffer and Moving Text
  62.  
  63.      The VIX emulation works entirely in the available memory for
  64. editing.  The text from the file which is being edited is held in a
  65. buffer in main memory.  If a file is particularly large, it may not
  66. entirely fit into main memory. The buffer size limit in no way restricts
  67. the total size of a file that can be edited by VIX.  To make editing
  68. large files easier, some commands apply to the entire file and cause
  69. automatic cross buffer manipulation. 
  70.  
  71.      VIX actually divides the internal memory into two parts: the text
  72. buffer and the save buffer.  The text buffer (or simply the buffer) is
  73. used to hold the file (or part of the file) being edited.  There is
  74. only one such text buffer. The save buffer is used for moving text,
  75. both from one part of the text buffer to the other, as well as to
  76. and from external files.  The maximum size of the save buffer depends
  77. on the amount of text currently residing in the main text buffer. 
  78. The following diagram shows the internal VIX memory organization:
  79.  
  80.    +-----------------------------+
  81.    |  TEXT BUFFER - the current  |
  82.    |  text (or portion) of file  |
  83.    |  being edited. (grows down) |
  84.    |            _________________|
  85.    |___________|                 |
  86.    |  free memory        ________|
  87.    |_____________________|       |
  88.    |  SAVE BUFFER - grows up     |
  89.    +-----------------------------+
  90.  
  91.      Text is added to the text buffer when the file is first read in
  92. (or created).  If the file doesn't fit into one buffer, you will have
  93. to manually "page" the text into the buffer.  Text is added to the
  94. save buffer in one of several ways.  VIX has added commands to move
  95. text from the text buffer to the save buffer, and move the
  96. contents of the save buffer to the text buffer.  VIX also has "cut
  97. mode".  When cut mode is enabled (the default), when lines are killed,
  98. they are automatically copied into the save buffer as well as being
  99. deleted from the text buffer.  When off, deleted lines are not saved.
  100. It is also possible to save the contents of the save buffer to a
  101. new external file, and to load the save buffer from an external file.
  102.  
  103.      'P' and 'p' are used with 'y' and '^Y' to move text around.  'P'
  104. causes the text in the save buffer to be inserted before the current
  105. cursor position.  'p' is used to insert the save buffer after the
  106. current line. The saved text remains in the save buffer.
  107.  
  108.      The 'y' command command will yank (save) the current line in
  109. the save buffer, and move the cursor down one line.  On the screen,
  110. 'y' appears to have the same behavior as 'j'.  If n is supplied,
  111. then n lines will be yanked.  'y' can also be used sequentially. 
  112. If no other commands intervene, consecutive 'y' commands will continue
  113. adding lines to the save buffer.  If any other commands are entered
  114. between consecutive 'y' commands, the previous contents of the save
  115. buffer will be lost, and replaced with the new line.  If cut mode
  116. is on (the deault), a 'dd' will overwrite the save buffer! The 'Y'
  117. command can be used to append lines to the current save buffer without
  118. losing the previous contents. 
  119.  
  120.      The 'd/' command can be used with 'y' 'Y', 'P' and 'p' to move
  121. text.  Use 'y' to save the text to be moved, immediately delete the
  122. saved text with 'd/', then insert it at the new place with 'p' or 'P'. 
  123. The last line of the file is can be saved in the save buffer only
  124. once, and an error message will be printed if you attempt to save
  125. the last line a second time. 
  126.  
  127.      A 'qy' is similar to 'y' yank, but the text saved in the save
  128. buffer is read in from an external file instead of from the text
  129. buffer.  When 'qy' is entered, the save buffer is cleared, and the
  130. user is prompted for the name of the file to read.  VIX then will
  131. read as much of the external file into the save buffer as it can. 
  132. The 'P' or 'p' command can then be used to insert the save buffer
  133. text into the current file at the desired location.  If there is
  134. not enough room in the save buffer to hold the entire file, then
  135. only part of the file is read and a diagnostic message printed. 
  136.  
  137. A 'qp' causes the contents of the save buffer will be written to
  138. a new file.  After 'qp' is entered, you will be prompted for the
  139. name of the output file, and then the contents of the save buffer
  140. will be written to that file. 
  141.  
  142.      The 'qw' command is used to explicitly go from one
  143. buffer to the next.  By default, when n is >= 0, the entire current
  144. buffer is written to the new version of the file being edited, and the
  145. next buffer full of the original file (if any) is read in.  If a
  146. negative n is supplied (any negative value, most easily '-qw'), then
  147. only the part of the buffer up to (but not including) the current
  148. line is written.  Then as much more of the file as possible is read
  149. to the end of the current buffer.  Thus, a negative n is useful when
  150. a file won't fit, and the split point is at an awkward place.  It
  151. is also useful when a 'qy' yanked file won't fit. 
  152.  
  153.  
  154. *****  Searching
  155.  
  156.      Unlike Vi, end of lines are not special to VIX.  Thus all the
  157. cursor movement commands and delete single character commands will
  158. treat the end of line as just another character.  This also means
  159. that a <Return> (end of line) is a valid search character, and thus
  160. makes it impossible to end a find pattern with a <Return>.  The <Escape>
  161. key is used to mark the end of a find pattern.  VIX also supports
  162. find pattern wild cards somewhat different that standard VI.
  163.  
  164.      Another basic concept of VIX is the "last thing." Whenever VIX
  165. finds a pattern from the search command, skips over a word, or gets
  166. from or puts to the save buffer, that text is considered the "last
  167. thing."   The 'd/' will delete the "last thing".
  168. While this is this a powerful editing concept, it does have some
  169. consequences.  First, the cursor will always be placed AFTER the
  170. pattern just found.
  171.  
  172.      The search normally ignores the case of the letters in the pattern. 
  173. If the 'q:f' parameter is set with 0 ('0q:f'), then search command
  174. will match only the exact case.  If the pattern is found, then the
  175. cursor will be placed immediately following the pattern.  The pattern
  176. may be at most 100 characters long.
  177.  
  178.      VIX supports extensive wild card matching.  The 'q:m' set
  179. parameter controls whether or not wild card matching is turned on.
  180. Normally, it is.  The wild card matching in VIX is based on the
  181. concept of 'sets of special characters'.  VIX predefines 6 sets of
  182. characters, and allows the user to define one additional set.  When a
  183. special control character is included as part of the find pattern,
  184. then any character in the specified set will match the pattern.  The
  185. predefined sets are:
  186.  
  187.     ^A - Alphanumeric characters: a-z, 0-9
  188.     ^D - Digits: 0-9
  189.     ^L - Letters: a-z
  190.     ^O - Other characters: all characters except a-z, 0-9
  191.     ^P - Punctuation: '.', ',', '!', '?'
  192.     ^X - Any character: any printable character
  193.     ^U - User character: any character in user set, set by ':U'
  194.  
  195.      Any of the sets may be specified by entering the proper control
  196. character in the find pattern: Control-A for the ^A set.  Thus,
  197. entering a find pattern of '^L^D' would match any letter followed by
  198. any digit.  Since it may be desirable to match a sequence of one of
  199. the character sets, two prefix characters are supported.  A '^W'
  200. before one of the above sets will match a 'word' of that set.  Thus,
  201. '^W^L' will match any word, and '^N^D' will match any number.  The
  202. find pattern 'st^W^L' would match words starting with 'st'.  The '^N'
  203. prefix is used to make a 'word' of characters NOT included in the
  204. given set.  Thus, '^N^L' will match a 'word' of characters NOT
  205. including the letters a-z.  A match 'word' consists of any sequence of
  206. characters (at least one character long) found in the given set, up to
  207. the first character not in the set.  End of lines also terminate all
  208. wild card patterns.  The only real way to adequately understand VIX
  209. wild cards is to use them in practice. 
  210.  
  211.      The last pattern found with the find command (up to 100 characters)
  212. is saved in an internal buffer.  The '*' command will insert that
  213. pattern into the text at the current cursor location.  If the last
  214. find pattern included wild card characters, the pattern saved will
  215. be the actual text matched, and not the wild cards themselves.
  216.  
  217.      'q/' is the same as '/', except the search will cross buffer
  218. boundaries.  Whenever a buffer is searched without finding the pattern,
  219. the next buffer will be read in.  The screen will not change until
  220. the pattern is found or the file is exhausted.  If the pattern is
  221. not found anywhere, then the entire file will have been written out,
  222. and there will be an empty buffer.  The 'qb' command may be used
  223. at that point to get back to the beginning of the file. 
  224.  
  225.  
  226.  
  227.  
  228. ***** Repeat loops
  229.  
  230.      Probably the most powerful editing tool provided by VIX is the
  231. repeat loop.  This allows arbitrary command sequences to be entered,
  232. and repeated any number of times.  VIX will have at least 5 different
  233. repeat buffers.  The repeat loop is used instead of the standard Vi
  234. macro command facility.
  235.  
  236.      When 'n<' is entered, the editor echoes 'Repeat: n<' at the
  237. bottom of the screen. The user then types in any series of commands
  238. to be repeated n times. The repeat command is terminated with a
  239. matching '>' and a double escape (echoed as $$).  Repeat loops may
  240. not be nested.  The repeat loop has two typical useful functions:
  241. one is to replace multiple occurrences of a string with another
  242. (e.g., "10</one$c/two$>$$"), a second is to save a complicated sequence
  243. of commands to be repeated as necessary with the '@' command (i.e.,
  244. a macro facility).  Each repeat loop may have up to 100 characters. 
  245.  
  246.      When a repeat loop is entered from the keyboard, it is saved in
  247. one of 5 repeat loop buffers, each identified by an integer value. 
  248. The repeat buffer which is currently in use can be set with the 'nq:r'
  249. command.  Buffer 1 will be used by default.
  250.  
  251.      The '#' command has been provided to simplify the use of the
  252. multiple repeat buffers. Entering '23#4' for example, will cause
  253. repeat buffer 4 to be executed 23 times
  254.  
  255.      When making repeat loops, it is easy to make a mistake.  The 'qe'
  256. command allows any of the repeat buffers to be edited, and then the 'qr'
  257. command can save the corrected repeat buffer back.  If you don't give
  258. a value for n, the currently selected buffer is used.
  259.  
  260.      The 'qe' command will insert the contents of the selected repeat
  261. buffer into the current text buffer
  262. above the current text line.  The repeat buffer will start
  263. with a sequence of '#n:<', where n will be replaced by the repeat
  264. buffer being edited.  The '#n:' identifies which buffer you are
  265. editing, and is used by the 'qr' store repeat buffer command to identify
  266. the buffer to save to.  Escapes will be represented by '^[' instead of
  267. the '$' used when entering a repeat buffer initially.  A '>^[^['
  268. identifies the end of the repeat loop. 
  269.  
  270.      After you have edited the repeat buffer, it can be saved with the
  271. 'qr' command.  You must place the cursor anywhere on the first line of
  272. the repeat buffer before using 'qr'.  When you press 'qr', the buffer
  273. will be saved in the buffer indicated right after the '#'.  Thus,
  274. unlike 'qe', the 'qr' command accepts no n value. 
  275.  
  276.  
  277.  
  278.  
  279.  
  280. ***** Settable parameters
  281.  
  282.      Many of the basic operating characteristics of VIX are
  283. controllable by user settable parameters.  These parameters are
  284. relevant to all versions of VIX, with the current status of each
  285. displayed on the help screen ('=' command).  These paramaters are
  286. set using 'nq:p', where p is one of the following parameters.
  287.  
  288. nq:a - set autoindent.  A value of 1 turns on autoindent, 0 off.
  289.    When autoindent is on, each new line started while in insert mode
  290.    will be indented to the same leading tab/blank space as the previous
  291.    line.  Use blanks or tabs to add indentation, and backspace to backup
  292.    over indentation. 
  293.  
  294. nq:c - set cut mode.  When cut mode is enabled (1), killed lines are
  295.    also saved in the save buffer.  This works for individual kill
  296.    commands, e.g.  'dd', 'dd', 'dd' will save only the line associated
  297.    with the 3rd 'dd', while '3dd' will save 3 lines in the save buffer.
  298.    With cut mode off, lines are not saved in the save buffer. 
  299.  
  300. nq:d - set home "display" line to n. The display line is the line the
  301.    cursor homes to after a '^L' verify command.
  302.  
  303. nq:e - Expand tab value.  The default value for ':E' is 8, which causes
  304.    the tab character (^I) to be expanded to multiples of 8 columns.
  305.    Setting ':E' to 0 will cause tabs to be displayed as '^I' instead.
  306.    Other values are possible, but less useful. 
  307.  
  308. nq:f - Find case mode: n <= 0 sets find mode to search for exact case
  309.    of pattern, n > 0 (default) set search mode to ignore upper/lower
  310.    case. 
  311.  
  312. nq:m - Match wild cards.  (default=1).  If on, then matching of the VIX
  313.    wild card sets is enabled.  If off, then the wild card control
  314.    characters will match the actual control characters in the file. 
  315.  
  316.  q:o - set output file name.  When ':o' is entered, you will be prompted
  317.    for the name of the edited output file.  This overrides the '-o'
  318.    command line switch, and can be used to change your mind about the
  319.    name of the edited file.  If the output file name is different than
  320.    the input file name, the input file will not be renamed to the
  321.    backup file name. 
  322.  
  323. nq:r - select repeat buffer n. (default=1).  Repeat buffer n becomes
  324.    the current repeat buffer executed with the '@' command.  The '='
  325.    will display the current contents of repeat buffers.
  326.  
  327. nq:s - scroll lines: This parameter sets how many lines the cursor will
  328.    move before the screen scrolls.  'q:S' sets how many lines cursor
  329.    will move above and below home display line before scrolling.
  330.  
  331. nq:t - tty mode.  A 0 is screen mode, a 1 is tty mode.  (This
  332.    command is useless on the Atari, but useful on slow mainframes.)
  333.  
  334. q:u - set User Wild Cards.  After entering :U, you will be prompted for
  335.    a user wild card set.  You can use backspace to correct your entry,
  336.    and '<Esc><Backspace>' to enter backspace and '<Esc><Esc>' to enter
  337.    escape. 
  338.  
  339. nq:v - virtual window lines.  The 'n:V' will set the virtual window to
  340.    n lines.  N must be between 3 and the number of hardware lines on
  341.    the terminal.  This feature was desinged for busy time sharing
  342.    systems and slow modems.
  343.  
  344. n:W - set auto wrap width.  The ':W' parameter sets the column number
  345.    used for auto wrap mode.  When the auto wrap is set to a value
  346.    greater that 1, VIX will automatically insert an end of line when
  347.    the user types the first blank after the given column.
  348.  
  349.  
  350.  
  351.  
  352. ***** Word Processing Features
  353.  
  354.      VIX has some limited word processing capability.  This is the
  355. autowrap feature, settable both when you first run VIX, and by the ':w'
  356. parameter.  Setting autowrap to column 65, for example, will tell VIX
  357. to automatically insert a newline whenever you enter text past that
  358. column.  
  359.  
  360.      The '!' tidy command is specifically designed to improve the
  361. appearance of strictly text files.   The '!' tidy command will fill
  362. source text using the same right margin currently set for auto-wrap. 
  363. Tidy performs essentially the same operation as a word processor
  364. fill function.  Word are combined on one line until the auto-wrap
  365. margin is passed.  The 'n' count refers to the total number of resulting
  366. lines, not the number of original lines.  Specifying a large 'n'
  367. will tidy large sections of a document.  The tidy command recognizes
  368. lines beginning with blanks, tabs, or a period, and blank lines as
  369. special.  It will not fill those lines, thus preserving paragraphs,
  370. tables and NROFF-like dot commands. 
  371.  
  372.  
  373. ***** Other Features
  374.  
  375.      For programmers, VIX has an autoindent command.  The ':a' parameter
  376. controls this feature.  When enabled, VIX will automatically match the
  377. leading white space at the beginning of the previous line. 
  378.  
  379.      The 'q(' command is used to toggle between line resolutions on the
  380. Atari ST monochrome monitor.  Each 'q(' toggles between 25, 40 and 50
  381. line resolution.
  382.  
  383.  
  384.      The 'qj' command will cause a "jump" back to the line of the
  385. previous cursor position.  The major intent of 'qj' is to restore
  386. the cursor position if a large cursor movement command is accidentally
  387. entered (like when you thought you were in insert mode).  It is also
  388. useful after using 'qb' to make a backup copy of the file.  The
  389. sequence 'qb', 'qj' will write the file, then restore the cursor
  390. positon.
  391.  
  392.      The 'nm' mark command notes the current line positon.  Values
  393. of 1 to 9 are allowed for n. 'nM' restores the position. After entering '3m'
  394. for example, you can then move around the buffer, and later use '3M'
  395. to return to the marked location.
  396.  
  397.  
  398. ***** Startup and option switches
  399.  
  400.  
  401.      To edit a file using VIX, enter the following command line
  402. (if you have a shell - otherwise provide the parameters to
  403. the TTP box):
  404.  
  405.           vix filename -switch1 -switch2 ...
  406.  
  407.      VIX has several switches which control certain operating
  408. characteristics.  Each switch begins with a minus (-), and is
  409. separated from the file name and other switches by a blank in the
  410. standard UNIX/C convention.  Some switches may be negated by using a
  411. 'nox' form.  Thus, '-b' will cause a .bak file to be generated, while
  412. a '-nob' causes the .bak file to be deleted on exit from the editor.
  413. This capability is indicated by []'s.  As many switches as necessary
  414. or desired can be used at one time in any order.  A ':' may be used
  415. instead of a '=' for '-c' and '-o'.  The various switches supported
  416. include:
  417.  
  418.      -[no]b -- generate a .B[AK] version of the original (the usual
  419.           default).  The -nob option means no .BAK file is generated.
  420.           This latter mode of operation follows the normal Unix
  421.           convention of not keeping past generations of a file. 
  422.      -[no]i -- auto indent mode enabled. 
  423.      -o=filename -- send edited output to filename.  The output file
  424.           can also be changed at any time during the editing session
  425.           with the ':o' command. 
  426.      -r -- read only - file can be read in only
  427.      -s -- big save buffer - leaves more buffer for save file
  428.      -w -- word processing mode - sets autowrap on, margin to 65. 
  429.      -# -- entering a number from 3 up to the number of lines on the
  430.           screen will create a smaller VIX editing window.  This is
  431.           most useful for slower baud rates.  A -7 makes a nice, small
  432.           window showing 7 lines. 
  433.  
  434.  
  435.  
  436. ************************ COMMAND SUMMARY ***************************
  437.  
  438.      The available VIX commands are summarized below.  The first
  439. column of each entry has a character noting similarities and
  440. differences with the real vi commands in the following fashion:
  441.  
  442. - means present in vi, not implemented in vix.
  443. = means commands work identically {with possible minor variations}
  444. + means new or significantly different command
  445. * means "equivalent" command, somewhat different than vi
  446. <space> means command unused in both vi and vix.
  447.  
  448.   n in front of command means command takes count argument
  449.   [synonyms indicated in brackets]
  450.  
  451.    ^@: Unused
  452.    ^A: Unused
  453. = n^B: Backward window. {2 lines of continuity not preserved}
  454.    ^C: Unused
  455. = n^D: Down half window.
  456. -  ^E: Not implemented
  457. = n^F: Forward window.
  458. *  ^G: memory status, short info line
  459. = n^H: backspace Command mode: left; Insert mode: del last char
  460. =  ^I: inserts tab in insert mode, not a command.
  461. = n^J: down arrow in column [j,^N]
  462. + n^K: up in column [k,^P]
  463. =  ^L: verify screen [^R,z]
  464. = n^M: down to beginning of line [+]
  465. = n^N: [j, ^J]
  466.    ^O: Unused
  467. = n^P: [k, ^K]
  468. =  ^Q: Unused (flow control)
  469. =  ^R: Redraw screen [^L,z]
  470. =  ^S: Unused (flow control)
  471. +  ^T: TVX prefix command - see q [q,Q,T]
  472. * n^U: Up half window.  ** in insert mode, does NOT erase line **
  473. *  ^V: Not a command.  NOT literal quote in insert mode.
  474. *  ^W: Not a command.  NOT used for delete word in insert.
  475.    ^X: Unused
  476. -  ^Y: Not implemented
  477. -  ^Z: Not implemented
  478. =  Escape: forces command mode, safe follow char for d,c,q.
  479.    ^: Unused
  480. -  ^]: Not implemented
  481. -  ^^: Not implemented
  482.    ^_: Unused
  483. =  <space>:  [r]
  484. +  n!: Tidy.  Fills n lines up to wrap margin. [see autowrap]
  485. -   ": Not implemented
  486. + n#p: execute repeat loop number 'p' 'n' times
  487. =   $: goto end of current line {end is newline, not last char}
  488. -   %: Not implemented
  489. -   &: Not implemented
  490. -   ': Not implemented
  491. -   (: Not implemented
  492. -   ): Not implemented
  493. +   *: insert last matched pattern into text buffer
  494. =  n+: [CR, ^M]
  495. -   ,: Not implemented
  496. *   -: Used in vix for negative counts, use K for up line.
  497. -   .: Not implemented, repeat loops are a substitute
  498. =   /: search {Escape used to end pattern, multi-line patterns ok}
  499. *   0: 0 is used for counts (especially for : parameters)
  500. = 0-9: count value for numeric arguments {may be negative!}
  501. -   :: Not implemented - use ZZ and ZA to exit
  502. -   ;: Not implemented
  503. +  n<: Begin repeat loop. Loop terminated with >$$. ($ = Esc)
  504. +   =: Help screens
  505. +   >: Used to terminate repeat loops.
  506. =   ?: Reverse search {search begins on previous line}
  507. +  n@: execute current repeat loop n times (shorthand for n#p)
  508. =   A: append to end of line
  509. *  nB: back a word {vix's concept of words is different than vi}
  510. =   C: changes rest of line
  511. =   D: delete rest of the line
  512. -   E: Not implemented
  513. -   F: Not implemented
  514. =  nG: goes to line number n, or end of buffer if no n supplied
  515. *   H: Beginning of buffer (first line in buffer)
  516. =   I: inserts at beginning of line
  517. =   J: join lines {not needed since vix treats newlines as chars}
  518. +  nK: Up a line to beginning of line
  519. *   L: bottom line of file
  520. +  nM: return to marked location n (n from 1 to 9, see m)
  521. =   N: like n, but in reverse direction
  522. =  nO: open a line above current line. n opens n blank lines.
  523. =   P: put save buffer above current line {save buffers not named}
  524. +   T: tvx commands (see q) [^T,q,Q]
  525. *   U: very limited undo!! It only restores the LAST line killed!
  526.     V: Unused
  527. *  nW: Moves forward n words [w] {vix's concept of words not same}
  528. =  nX: delete n characters before cursor
  529. +  nY: append n lines to save buffer (see y), does not change buffer
  530. =+ Zx: exit from vix (ZZ: normal, writes file, ZA: abort, no changes)
  531. -  [[: Not implemented
  532.     : Unused
  533. -  ]]: Not implemented
  534. =   ^: beginning of line {1st char of line, NOT 1st non-white char}
  535. +   _: invoke indirect command file
  536. =   a: append text starting after cursor
  537. *   b: back up a word [see B]
  538. =   c: change c, <sp>, ^, $, or / (delete, enter insert mode)
  539.     =   c - change line
  540.     =   <sp> - change one character
  541.     =   ^ - to beginning of line
  542.     =   $ - to end of line
  543.     *   w - next word {VIX's concept of word different}
  544.     -   b, and any others not mentioned not implemented
  545.     +   / - the last thing found, yanked or put
  546. =  nd: delete d, <sp>, ^, $, or /
  547.     =   d - delete line
  548.     =   <sp> - delete character
  549.     =   ^ - to beginning of line
  550.     =   $ - to end of line
  551.     *   w - next word {VIX's concept of word different}
  552.     -   b, and any others not mentioned not implemented
  553.     +   / - the last thing found, yanked or put
  554. -   e: Not implemented
  555. -   f: Not implemented
  556.     g: Unused
  557. =  nh: Move left n characters [BS,^H] {will move over lines, too}
  558. =  ni: insert (if value n supplied, then that ascii code inserted)
  559. =  nj: down lines, in column [^J,^N]
  560. =  nk: Up lines, in column [^K,^P]
  561. =  nl: right n characters [<space>] {moves over lines, too}
  562. *  nm: mark cur. line as location n.  Use M to return to location.
  563. =   n: find next (in same direction as last ? or /)
  564. =  no: open n following lines
  565. =   p: put save buffer after cur line
  566. +   q: Prefix character for "extended" commands
  567.         b: goto real beginning of the file
  568.         e: edit repeat buffer
  569.         j: jump back to last location
  570.         p: put external file from save buffer (writes file)
  571.         r: restore repeat buffer
  572.         s: print screen
  573.         w: write buffer, read in next page of file being edited
  574.        -n causes a buffer up to current line to be written
  575.         y: yank external file to save buffer (reads file)
  576.         /: cross buffer search (does automatic 'qw' on search)
  577.  
  578.      nq:p: set parameter 'p' to value 'n', parameters are:
  579.          a: autoindent (1 means on, 0 off for all "switch" pars)
  580.          c: "cut" mode (means 'dd' saves line in yank buffer, too)
  581.          e: expand tabs to n spaces (8 default)
  582.          d: home display line (where cursor homes after verify)
  583.          f: find case mode (0 is case insensitive, 1 exact match)
  584.          m: match wildcards (1 use ^A, ^L, etc., 0 no wild cards)
  585.          o: requests new name for output file
  586.          r: set current repeat buffer to n
  587.          s: scroll window, cursor moves s lines before scrolling
  588.          t: tty mode - 1: tty, 0: visual (you probably don' need this)
  589.          u: requests entry of user wild card set
  590.          v: virtual window size
  591.          w: autowrap limit
  592.  
  593. =   r: replace next char with next character entered
  594. =  ns: substitute: delete n characters, enter insert mode
  595. -   t: Not implemented
  596. -   u: Not implemented (see U)
  597.     v: Unused
  598. *  nw: advance word (see W)
  599. =  nx: delete n characters
  600. *  ny: yank text to save buffer - will save n lines into save buffer
  601.        (Only one save buffer, 1st y clears buffer, rest add until
  602.         non y command entered. dd works in a similar fashion, but
  603.         kills as it saves (if cut_mode enabled)).
  604. =   z: refresh screen (^L,^R)
  605. -   {: Not implemented
  606. -   |: Not implemented
  607. =  n~: Change case of next n characters
  608. * nDEL: Same as X, delete previous character
  609.  
  610. əəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəəə